The present invention relates generally to the area of computer graphics and more particularly to methods and means for displaying of color images on display hardware. There are at least two distinct methods of placing color values (r.g.b) into the single picture elements (pixels) contained on a hardware screen: "rendering of geometry" and "displaying of image." "Rendering of geometry" is a method in which objects to be displayed on the screen are expressed as polygons. Vertices of these polygons have associated color values determined by calculations (lighting operations) performed at each rendering. Pixels, chosen at each rendering, are given these color values to display the vertices. Remaining pixels are given color values via "shading". "Shading" is the process of filling in the rest of the pixels that comprise a polygon during "rendering of geometry." Color values for these pixels are calculated from information known about the vertices of the polygon. "Gouraud shading" is one method of shading in which the color values of the vertices are color interpolated to derive the color values for the remaining pixels of the polygon. There are other methods of shading which do not involve color interpolation. In contrast to "rendering of geometry." pixels may be given color values by simply filling them in from an array of color values called an "image." In this case there are no established objects or polygons expressed to the display hardware. Such an image may have been obtained from a camera, or from a process of calculating color values such as "ray tracing." "Ray tracing" is a computation intensive method of calculating color values for a pixel. Typically, a computer system central processing unit (CPU) is utilized to perform these imaging computations. In these conventional systems the CPU performs all of the imaging (ray tracing) computations for each and every pixel on a display screen in sequential order. For a detailed discussion of ray tracing, see "An Overview of Ray Tracing," Andrew S. Glassner. It can be seen that imaging computations in general and ray tracing in particular are extremely time consuming and may take a matter of hours, or even days to complete this color imaging depending upon the description of the screen being displayed. The combination of calculating and displaying an image, may be called "color imaging."
Since ray tracing is an extremely computational intensive means of performing color imaging, it would be extremely desirable to have a prioritization scheme in place such that the pixels corresponding to the most important objects in a scene description are ray traced prior to other less significant objects. An antialiasing prioritization scheme has been discussed in "Antialiased Ray Tracing by Adaptive Progressive Refinement." by J.Painter and K.Sloan. This antialiasing prioritization method ray traces each pixel a number of times and then use sampling techniques to determine a priority regarding which pixels are to ray traced next. This prioritization is based upon the area lying between previously ray traced pixels and the in color therebetween. This article also discusses utilizing software to color interpolate non-ray traced pixels. It can be understood how a prioritization scheme which allows a user to modify the priority value of objects and areas in a particular screen description would be highly desirable.
Further, a number of currently available computer display adapter hardware devices are capable of performing rendering of geometry, including Gouraud shading. Gouraud shading is a graphics technique unrelated to color imaging, or ray tracing. Since Gouraud shading is implemented through color interpolation, these display adapters are capable of performing color interpolation. The present invention utilizes this color interpolation capability to achieve a goal not contemplated by the conventional and standard uses of Gouraud shading.
During the period when a CPU is performing the ray tracing calculation, all other associated computer graphics hardware remains idle awaiting completion of these computations. Therefore, it would be extremely desirable to provide a method which would optimize the efficiency of a computer graphic system by utilizing the capabilities of this idle graphics hardware in conjunction with the processing being conducted by the system CPU.
Additionally, it would be advantageous to have a graphics system with the capability of invoking this idle graphics display adapter hardware in conjunction with the previously discussed prioritization scheme.